接下來這幾天,會實際建造MQTT Broker 傳訊方式,會在AWS上開一台EC2 虛擬機並且安裝 Mosquitto Broker,然後使用Chrome瀏覽器的應用程式「MQTTLens」訂閱與發布MQTT訊息,除此之外也會使用 Python 來收訊以及發送 MQTT 的訊息。
Amazon Elastic Compute Cloud (EC2) 彈性的雲端計算,可以在雲端建立和執行虛擬機器的 Amazon Web Service。
我選擇開啟的虛擬機作業系統環境為Ubuntu。
(題外話: 原本選擇Linux AMI 結果不知道為什麼不能安裝Mosquitto Broker,找了很多方法都不能安裝,就換成Ubuntu了。)
開啟 AWS 管理主控台。找到 EC2 並選取 Amazon EC2 開啟服務主控台。
接著選取 Launch Instance 最明顯的藍色按鈕給他按下去吧!
選擇系統 Amazon Machine Image (AMI)
尋找 Ubuntu Server 18.04 LTS (HVM), SSD Volume Type 然後 Select 藍色按鈕給他按下去吧!
選擇執行虛擬機配備,包括各種 CPU、記憶體...我選擇預設項目,這個是免費方案,這種就足夠運算及處理簡單的工作了,接著頁面底部 Review and Launch 藍色按鈕給他按下去吧!
接著就檢查一下選取的組態、儲存、標記和安全設定。基本上使用預設值即可,接著就按下頁面底部 Launch 藍色按鈕給他按下去吧!
接下來要創立金鑰,可以選擇舊的,也可以再創一個新的,在這裡示範的是建立新的金鑰。金鑰對搭配 SSH 之後就可以安全地存取 Ubuntu 虛擬機。
選擇 Create a new key pair 並指定名稱。接著按下 Download Key Pair。
下載完後就可以按下 Launch Instance 藍色按鈕,啟動 Ubuntu 執行個體。
接著就會出現以下畫面,按下 View Instances,查看剛才啟動的執行個體狀態。
接著就可以查看 Instance State 欄會變更為 running 並顯示公有 IP 地址。
剛剛下載的金鑰
建議把金鑰對儲存在 user 目錄中名為 .ssh 的子目錄中
例如:C:\user\{yourusername}\.ssh\key名稱.pem
當發現資料夾中並沒有.ssh資料夾
注意: Windows 不能建立用.
開頭的資料夾名稱,就會像這樣出錯
解決
檔案名稱輸入.ssh.
前後都加上.
系統會自動移除最後的.
建議把金鑰對儲存在主目錄的 .ssh 子目錄中
例如:~/.ssh/key名稱.pem
可以手動移,也可以利用終端機
看你一開始把檔案存到哪裡,一般預設是存到Downloads資料夾(下載項目),這裡我是存在桌面。
在終端視窗輸入:
存到Downloads:mv ~/Downloads/key名稱.pem ~/.ssh/key名稱.pem
存在桌面:mv ~/Desktop/key名稱.pem ~/.ssh/key名稱.pem
使用 chmod 命令,輸入下列命令限制SSH 金鑰的許可,確保金鑰檔案無法公開檢視。
chmod 400 ~/.ssh/wsrsw.pem
wsrsw.pem 這個金鑰 只有自己可以看到 read
r
當我們一般在遠端連線電腦,都是要輸入ip位置才能連線,第一步就是來找一下EC2裝置的ip位置吧。
將裝置的 IPv4 Public IP 複製下來
使用 SSH 連接EC2。
指令格式為:
ssh -i {full path of your .pem file} ubuntu@{instance IP address}
輸入以下資訊:
ssh -i ~/.ssh/key名稱.pem ubuntu@IP_Address
範例:
ssh -i ~/.ssh/wsrsw.pem ubuntu@54.xx.xx.xx
輸入 yes,然後按 enter。
當終端機名稱變成 ubuntu@ip... 代表已連接到雲端的 AWS ubuntu 虛擬機。
可以從 EC2 主控台終止執行,這樣就不用付費。
選擇要終止的EC2,接著按一下 Actions 按鈕,選擇 Instance State 再按 Terminate。
按下 Yes, Terminate 確認終止系統。
Instance State 會變成 terminated
終止成功!
明天就來EC2虛擬機上架設MQTT Broker 吧!!!
https://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/concepts.html
https://aws.amazon.com/tw/getting-started/tutorials/launch-a-virtual-machine/?trk=gs_card
https://oranwind.org/-aws-zai-aws-ec2-an-zhuang-ubuntu/